home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Special 18 / AMIGAplus Sonderheft 18 (1999)(ICP)(DE)[!].iso / Forum / MichaelRoth / 3-3-99 / subs / swapbuff.asm < prev    next >
Assembly Source File  |  1998-08-15  |  1KB  |  25 lines

  1. swapbuff
  2. ; Dreht einen Buffer um; das lezte wird das 1 Byte etc.
  3. ; A0 -> Buffer
  4. ; D0 -> Länge
  5.  
  6. ; SubRegister
  7. ; A1 x  Endadresse
  8. ; D1 x  Zwischenspeicher
  9.  
  10.          lea       (a0,d0),a1                    ; Endadresse berechnen
  11.                                                  ; Weil die länge = 12
  12.                                                  ; ist, wir aber von 0 ab
  13.                                                  ; beginnen zu Rechnen
  14.                                                  ; ist das 1(a,d) entffalen.
  15.                                                  ; Die länge ist zwar 12 Bytes
  16.                                                  ; aber der Buffer wird von 0 ab gezählt
  17.          lsr.l     #1,d0                         ; / 2
  18. .loop
  19.          move.b    -(a1),d1                      ; Leztes Zeichen auslesen
  20.          move.b    (a0),(a1)                     ; 1. in Lezte Position Kopieren
  21.          move.b    d1,(a0)+                      ; leztes in 1 Position
  22.          sub.l     #1,d0
  23.          bne       .loop                         ; dbra entfernt wegen
  24.  
  25.